package com.iwuyc.tools.commons.structs.basic;

import java.util.Arrays;

/**
 * 元组，用于存储多个数据
 */
public class Tuple {
    private final Object[] values;

    public Tuple(Object... values) {
        this.values = values;
    }

    @SuppressWarnings("unchecked")
    public <T> T get(int index) {
        return (T) values[index];
    }

    /**
     * 获取所有的数据
     *
     * @return 所有的数据
     * @author Neil
     * @since 2024-06-13
     */
    public Object[] getValues() {
        // 为避免外部修改数组，返回一个新的数组
        return Arrays.copyOf(values, values.length);
    }
}
